﻿// ===============================================================================
//  Copyright © ymind.net. All rights reserved .
//  官方网站：http://ymind.net/
//  版权所有：彦铭工作室 老陈出品
// ===============================================================================

using System.Xml;
using Lcsoft.UrlRewriter.Actions;
using Lcsoft.UrlRewriter.Configuration;

namespace Lcsoft.UrlRewriter.Parsers
{
	/// <summary>
	/// 提供从 xml 配置文档解析地址重写动作的基本功能。
	/// </summary>
	public interface IRewriteActionParser
	{
		/// <summary>
		/// 获取动作名。
		/// </summary>
		string Name { get; }

		/// <summary>
		/// 获取一个值，该值指示当前动作是否允许嵌套动作。
		/// </summary>
		bool AllowsNestedActions { get; }

		/// <summary>
		/// 获取一个值，该值指示当前动作是否允许包含 Attribute 属性。
		/// </summary>
		bool AllowsAttributes { get; }

		/// <summary>
		/// 执行地址重写动作解析。
		/// </summary>
		/// <param name="node">包含要解析的动作信息的。</param>
		/// <param name="config">地址重写配置信息。</param>
		/// <returns>返回地址重写动作的实例。</returns>
		IRewriteAction Parse(XmlNode node, RewriterConfiguration config);
	}
}
